import Vue from 'vue'
import axios from 'axios'
import store from '../store'
import qs from 'qs'
import router from '../router'
// 响应时间
axios.defaults.timeout = 30 * 1000
// 配置cookie
// axios.defaults.withCredentials = true
// 配置请求头
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
// 静态资源
Vue.prototype.$static = ''

// 配置接口地址
axios.defaults.baseURL = '/api'
// POST传参序列化(添加请求拦截器)
axios.interceptors.request.use(
  config => {
    if (store.state.token) {
      // 判断是否存在token，如果存在的话，则每个http header都加上token
      config.headers.Authorization = store.state.token
    }
    // config.data = JSON.stringify(config.data)
    // config.headers['Content-Type'] = 'application/json;charset=UTF-8'
    if (config.method === 'post') {
      // config.data = qs.stringify(config.data)
    }
    return config
  },
  err => {
    return Promise.reject(err)
  }
)
// 返回状态判断(添加响应拦截器)
axios.interceptors.response.use(
  res => {
    if (res.status === 200) {
      return res.data
    } 
    // else if (res.status === 404) {
    // } else if (res.status === 500) {
    // }
  },
  err => {
    if (err.response) {
      switch (err.response.status) {
        case 401:
          router.replace({
            path: '/'
            // query: { redirect: router.currentRoute.fullPath }
          })
      }
    }
    return Promise.reject(err)
  }
)
export default axios
